OO design and programming
promotes:
1. Code reuse
2. Designs which localize the effects of adding new data
types to the program
3. A software model which is “closer” to the physical
model (physical things are objects and (usually) not
actions!). This often leads to a design which localizes
the effects of a “mid-stream” change in the software
specification.